**Housekeeping
clear all
cap log close
log using ${rep_root}/logs/inv_sup_other_outcomes.log, text replace
set more off
 
local cutoff = 50
local seed = 9999 
local case_lb = `cutoff'

local covarsmin d_mo_* d_dist_*
local covars vic_female_any vic_white_any acc_white acc_male acc_old cat_3 cat_4 d_mo_* d_dist_* arrests_pre complaints_pre force_pre any_prior_complaint tenure  
 
 
*****************
**BRING IN CASE STATUS + COMPLAINTS DATA AND APPLY DATA RESTRICTION
***************** 
 
do ${rep_root}/code/data_restrict.do

*****************
**MERGE WITH OUTCOMES DATA
***************** 

merge 1:1 cr_id acc_id using ${rep_root}/data/outcomes, keep(3) nogen 

**drop if accused are not police officers
//drop if acc_rank != "POLICE OFFICER"

*****************
**DEFINE TREATMENT AND MAKE COVARIATES
***************** 


**Drop investigators without enough cases
tab inv_id
sort inv_id 
by inv_id: gen inv_ct = _N
drop if inv_ct<`case_lb'
tab inv_id intake_yr

**Define some covariates
gen po = acc_rank == "POLICE OFFICER"
gen minor_inj = vic_inj_1<=1
gen vic_old = (year(inc_complaint_dt_1) - vic_byr_oldest)>=35 & !missing(vic_byr_oldest)
gen acc_old = acc_age>=35 & !missing(acc_age)
gen cat_3 = acc_cat==3
gen cat_4 = acc_cat==4
 
   
  

forvalues i = 1/25{
	gen d_dist_`i' = inc_district_1==`i'
}
forvalues yr = 2006/2008{
	gen d_yr_`yr' = intake_yr==`yr'

	forvalues m = 1/12{
		gen d_mo_yr_`m'_`yr' = intake_yr==`yr' & intake_mo==`m'
	}
	
}
forvalues yr = 2014/2018{
	gen d_yr_`yr' = intake_yr==`yr'
	
	forvalues m = 1/12{
		gen d_mo_yr_`m'_`yr' = intake_yr==`yr' & intake_mo==`m'
	}
}

gen d_noaff = finding_cd=="NO AFFIDAVIT"
gen d_unfound = finding_cd=="UNFOUNDED"
gen d_nosus = finding_cd=="NOT SUSTAINED"
gen d_exon = finding_cd=="EXONERATED"
gen d_sus = finding_cd=="SUSTAINED"
gen d_addlinv = finding_cd=="ADDITIONAL INVESTIGATION REQUESTED"

qui foreach var in vic_female_any vic_white_any acc_white acc_male acc_old cat_3 cat_4 complaints_pre complaints_pre force_pre any_prior_complaint tenure complaints_postc1_3 serious_postc1_3 complaints_postc1_3 merit_postc1_3 d_noaff d_unfound d_nosus d_exon d_sus d_addlinv{
	sum `var'
	*local temp_m = r(mean)
	local ss_`var'_m : di %6.3f r(mean)
	*local temp_sd = r(sd)
	local ss_`var'_sd : di %6.3f r(sd)
}

**Define treatment
 

gen treat_affidavit = finding_cd != "NO AFFIDAVIT"    
gen treat_sustain = finding_cd == "SUSTAINED"   

 


foreach t in treat_affidavit  treat_sustain{

**Create LOM
capture drop resid cr_resid cr_ct inv_tot_resid case inv_ct2  
qui reg `t' `covars'
predict resid, residuals

sort cr_id
by cr_id: egen cr_resid = total(resid)
by cr_id: gen cr_ct = _N

sort inv_id intake_yr intake_mo
gen case = 1
by inv_id intake_yr: egen inv_tot_resid = total(resid)
by inv_id intake_yr: egen inv_ct2 = total(case)
gen lom_`t' = (inv_tot_resid - cr_resid)/(inv_ct2-cr_ct)

 


sort inv_id
by inv_id: sum lom_`t'
}



*****************
**STORE FIRST STAGE RESULTS
***************** 
 
 
**First stage
foreach t in treat_affidavit treat_sustain{

sum `t'
local first_mean = r(mean)

reg `t' lom_`t' `covars', cluster(inv_id)
local first = _b[lom_`t']
local first_se = _se[lom_`t']
local first_N = e(N)
boottest lom_`t', weight(webb) nograph seed(`seed')
local first_f = r(t)^2
local first_p = r(p)

local first : di %6.3f `first'
local first_f : di %6.3f `first_f'

local first_mean_`t' : di %6.3f `first_mean'
local first_`t' : di %6.3f `first'
local first_se_`t' : di %6.3f `first_se'
local first_p_`t' : di %6.3f `first_p'
glo first_star_`t' = cond(`first_p_`t'' <0.01, "***", cond(`first_p_`t'' <0.05, "**", cond(`first_p_`t'' <0.1, "*", "")))
local first_f_`t' : di %6.3f `first_f'
local first_N_`t' : di %6.0f `first_N'
 
}
 
  
**************************
**REDUCED FORM RESULTS FOR ATTENDANCE & ASSIGNMENT
**************************

foreach treatvar in treat_affidavit {
preserve 


//INITIATE TABLE TO STORE RESULTS

texdoc init ${rep_root}/output/tables/inv_sup_other_outcomes.tex, replace force
tex \begin{tabular}{l*{2}{c}}
tex \hline\hline
tex                     &\multicolumn{1}{c}{Force} &\multicolumn{1}{c}{Merit}   \\
 

texdoc close

 
 
	
local varlist force_postc1_3 merit_postc1_3 force_postc4_12 merit_postc4_12 force_posty2 merit_posty2  
  
  
**Create Tables

**SECOND STAGE
foreach var of local varlist{


	reg `var' lom_`treatvar' lom_treat_sustain `covars' , cluster(inv_id)
 
	local beta4`var' = _b[lom_`treatvar']
 	
	boottest lom_`treatvar', weight(webb)  nograph seed(`seed')
/*
 
 ivreg `var' `covars' lom_treat_sustain (`treatvar'=lom_`treatvar'), cluster(inv_id)
 	local beta4`var' = _b[`treatvar']
 boottest `treatvar', weight(webb)  nograph seed(`seed')
*/
local p`var' = r(p)
display r(p)


//get stars based on bootstrapped p values 
glo star4_`var' = cond(`p`var'' <0.01, "***", cond(`p`var'' <0.05, "**", cond(`p`var'' <0.1, "*", "")))
local p4`var' : di %6.3f `p`var'' 

matrix b`var' = e(b)
matrix v`var' = e(V)
scalar N= e(N)
local N`var' = N


local se4`var' = sqrt(v`var'[1,1])

local beta4`var' : di %6.3f `beta4`var''
local se4`var' : di %6.3f `se4`var''
local N`var' : di %7.0fc `N`var''



sum `var'
local mean_`var' =r(mean)
local mean_`var' : di %6.2f `mean_`var''
 
 
  
	
}

 
**************************
**OUTPUT OLS RESULTS
**************************

texdoc init ${rep_root}/output/tables/inv_sup_other_outcomes.tex, append force  
tex \hline 
tex $<$ Month 3  &  `beta4force_postc1_3'${star4_force_postc1_3}&  `beta4merit_postc1_3'${star4_merit_postc1_3}  \\
tex          &(`se4force_postc1_3')    &(`se4merit_postc1_3')    \\
tex   &[`p4force_postc1_3']  &[`p4merit_postc1_3']    \\
tex Dep. var. mean & `mean_force_postc1_3' & `mean_merit_postc1_3'  \\
tex Observations & `Nforce_postc1_3'& `Nmerit_postc1_3'  \\
tex \hline 
tex Months 4-12   &  `beta4force_postc4_12'${star4_force_postc4_12}&  `beta4merit_postc4_12'${star4_merit_postc4_12}  \\
tex          &(`se4force_postc4_12')    &(`se4merit_postc4_12')    \\
tex   &[`p4force_postc4_12']  &[`p4merit_postc4_12']    \\
tex Dep. var. mean & `mean_force_postc4_12' & `mean_merit_postc4_12'  \\
tex Observations & `Nforce_postc4_12'& `Nmerit_postc4_12'  \\
tex \hline 
tex Year 2   &  `beta4force_posty2'${star4_force_posty2}&  `beta4merit_posty2'${star4_merit_posty2}  \\
tex          &(`se4force_posty2')    &(`se4merit_posty2')    \\
tex   &[`p4force_posty2']  &[`p4merit_posty2']    \\
tex Dep. var. mean & `mean_force_posty2' & `mean_merit_posty2'  \\
tex Observations & `Nforce_posty2'& `Nmerit_posty2'  \\  
 
texdoc close


 
 
 

texdoc init ${rep_root}/output/tables/inv_sup_other_outcomes.tex, append force   
tex \hline\hline
tex \end{tabular}

texdoc close

restore 
}

  
log close
*clear
